In data communication systems, data transmissions may be corrupted by noise or by other unwanted interference, resulting in data errors. In fiber optic transmission systems, in particular, there are two types of errors: random and burst. The random errors may occur due to noise or a variety of other sources. The burst errors, a large number errors of which occur in a very short period of time (typically 20 to 40 milliseconds (ms)) typically are caused by the occurrence of protection switching in the end-to-end transmission system. Protection switching occurs when a failed repeater in a transmission line causes data to be switched to a protection line.
To facilitate the detection and correction of errors, data is typically encoded using well-known error detecting codes, e.g., cyclic redundancy check (CRC), Hamming, etc. which append an error checking sequence to the data. In many fiber optic systems, the size of error checking sequence is limited to one or two bytes. However, depending on the size of the data word, one or two bytes of error checking may not be sufficient to correct multiple-bit data errors. Using more than one or two bytes of error checking may significantly reduce the information transmission rate of the system. For the above reasons, one or two bytes of error checking typically is used for single-bit error correction schemes. However, while single-bit random error correction schemes are possible using a 1 or 2-byte error checking sequence, these schemes exhibit a greatly reduced level of multiple-bit (burst) error detection power.
What is desired is an error protection scheme for use with data transmission systems which have random and burst error characteristics, and which can correct single-bit errors without sacrificing the capability for detection of multiple-bit errors.